package daoImpl;

import java.util.List;

import javax.persistence.EntityManager;

import modelo.Deporte;
import modelo.Horario;
import modelo.Login;
import dao.DAOGeneral;
import dao.ILoginDAO;

public class LoginDAOImpl extends DAOGeneral implements ILoginDAO {

	private EntityManager em;

	public LoginDAOImpl() {
		em = getEntityManager();
	}
	
	public void insertar(Login log) {
		 em.getTransaction().begin();
		 em.createNativeQuery("INSERT INTO Login (nombre_usuario, contrasena,dni,admin) " +
		    "       VALUES(?,?,?,?)").setParameter(1, log.getNombreUsuario()).setParameter(2, log.getContrasena()).setParameter(3, log.getUsuario().getDni()).setParameter(4, log.getAdmin()).executeUpdate();
		 em.getTransaction().commit();
	}

	public Login update(Login log) {
		em.getTransaction().begin();
		Login logx = em.find(Login.class, log.getNombreUsuario());
		logx.setAdmin(log.getAdmin());
		logx.setContrasena(log.getContrasena());
		if(log.getUsuario()!=null)
		{
			logx.setUsuario(log.getUsuario());
		}
		 em.getTransaction().commit();
		 return em.find(Login.class, log.getNombreUsuario());
	}

	public void borrar(Login log) {
		em.remove(log);
	}

	public Login seleccionarPorId(String nombreUsuario) {
		return em.find(Login.class, nombreUsuario);
	}
	
	@SuppressWarnings("unchecked")
	public List<Login> seleccionarTodosLogin()
	{
		return (List<Login>)em.createNamedQuery("Login.seleccionarTodosLogin").getResultList();
	}

}
